package collection;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;

/*
JDK1.8之后推出的一个新特性：Lambda表达式
作用：可以更简洁的代码实现匿名内部类
规则：
1）不是任何匿名内部类都可以转化成Lambda表达式
2） Lambda表达式对接口的要求：只能是函数式接口
3）函数式接口：接口中要求实现类必须重写的方法只有一个
*/
public class LambdaDemo {
    public static void main(String[] args) {
        List<String>list=new ArrayList<>();
        //匿名内部类的写法
        Collections.sort(list, new Comparator<String>() {
            @Override
            public int compare(String o1, String o2) {
                return o1.length()-o2.length();
            }
        });
        //Lambda表达式写法
        Collections.sort(list, (String o1, String o2)-> {
                return o1.length()-o2.length();
        });

        Collections.sort(list, ( o1,  o2)-> {
            return o1.length()-o2.length();
        });

        Collections.sort(list, ( o1,  o2)-> o1.length()-o2.length());


    }
}
